The advent of client-server based networking combined with the need for organizations to cut costs in IT support has encouraged adoption of remote desktop software. Remote desktop software facilitates a remote server or a cluster of servers to store and execute a computer application that users can access via a thin client that is connected to the remote server or the cluster through a computer network. Such a practice facilitates end users to access a fully functional computer application remotely and it also facilitates administration of the computer application from the server or the cluster as opposed to administration from each client computer. Another benefit includes clients having various operating systems that are able to interface the computer application without concern for compatibility issues. Compatibility with various operating systems is not a concern because the user of the thin client interacts with a copy of an image of a session of the computer application as opposed to interacting directly with the computer application.
From its name, it may be assumed that remote desktop software only facilitates remote interaction with a desktop session hosted on a remote computer; however, it has become popular to configure remote desktop software to facilitate interaction with a single computer application. For example, a user through a client computer could interact with a copy of an image of a MICROSOFT WORD™ or a MICROSOFT EXCEL™ session that is hosted on a remote computer.
As mentioned above, remote desktop software allows for interacting with the full functionality of a remote computer application, but it does not additionally allow for developing a new application using specific components and functions of the remote computer application nor does it allow modifying and controlling the use of the remote computer application in a granular manner. To address these limitations, systems and methods are described herein that allow end users to use specific components and functions of a remote computer application to develop their own applications, where the remote application acts as a virtual library at the developers' disposal. Additionally, the methods and systems described herein allow for overcoming a well know tradeoff associated with remote desktop computing, which is having less control over functionality provided by a remote application session and the content entered into files interacting with the remote application.